function move(obj,json,callback){
		clearTime();
		obj.timerList = {};//吧所有不同属性的定时器都放在这里; 每个属性一个定时器;
		for(let attr in json){
			obj.timerList[attr] = setInterval(function(){
	//****** iNow >> 当前的位置 获取方式不同;
			if(attr == "opacity"){
				var iNow = getStyle(obj,attr)*100;//1~0
			}else{
				var iNow = parseInt(getStyle(obj,attr));
			}
			var speed = (json[attr] - iNow) / 6;
			speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
			if(iNow == json[attr]){	
				//停止条件;
				clearInterval(obj.timerList[attr]);
				//console.log(obj.timerList);
				delete obj.timerList[attr];
				//console.log(obj.timerList);
				//如果 obj.timerList 之中 , 如果没有属性了，那么当前这个多属性动画就完成了;
				if(isStop()){
					//alert("所有动画执行结束");
					callback ? callback() : "";
				};
			}else{
	//*****   //
				if(attr == "opacity"){
					obj.style.opacity = (iNow + speed ) /100;
					obj.style.filter = `alpha(opacity:${iNow + speed})`;
				}else{
					obj.style[attr] = iNow + speed + "px";
				}
			}
		},30)
		}
		function clearTime(){
			for(let i in obj.timerList){
				clearInterval(obj.timerList[i])
			}
		}
		function isStop(){
			var n = 0;
			for(let i in obj.timerList){
				n ++ ;
			}
			if(n == 0){
				return true;
			}else{
				return false;
			}
		}
	}



	//返回一个对象的某个属性;
	function getStyle(obj,attr){
		if(getComputedStyle){
			return getComputedStyle(obj,false)[attr]
		}else{
			return obj.currentStyle[attr]
		}
	}

